package com.example.lotterysystem.common.exception;

import com.example.lotterysystem.common.errorcode.ErrorCode;
import com.example.lotterysystem.common.errorcode.ServiceErrorCodeConstants;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * Created with IntelliJ IDEA.
 * Description: service 层自定义异常
 * User: Li_yizYa
 * Date: 2025/8/1
 * Time: 16:24
 */
// @Data 注解会生成自己的 equals 方法和 hashcode 方法, 但是不带父类的
@Data
@EqualsAndHashCode(callSuper = true) // 通过该声明即可将父类相关的属性带进来，不写可能会带来问题
public class ServiceException extends RuntimeException {
    /**
     * 异常码
     * @see com.example.lotterysystem.common.errorcode.ServiceErrorCodeConstants
     */
    private Integer code;

    /**
     * 异常消息
     */
    private String msg;

    public ServiceException() {

    }

    public ServiceException(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public ServiceException(ErrorCode errorCode) {
        this.code = errorCode.getCode();
        this.msg = errorCode.getMsg();
    }
}
